package controler;

import java.io.*;

/**
 * <p>Title: controler.ThreadJoueur </p>
 *
 * <p>
 * 	Description: La classe ThreadJoueur du controler permet a un client d'ecouter tout le temps
 *  les messages venant du serveur
 * </p>
 *
 * <p>Copyright: (c) 2008 FSSIM</p>
 *
 * <p>Company: FSSImock</p>
 *
 * @author Antoine Farnault
 * @author Augustin Couette
 * @version 1.0
 */
public class ThreadJoueur extends Thread{
	BufferedReader entree; // une entree
	/**
	 * Constructeur
	 */
	public ThreadJoueur() {
		try {
			entree = new BufferedReader(new InputStreamReader(Joueur.connexion.getInputStream()));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * Methode run appelee au lancement du thread
	 */
	public void run() {
		String tmp="", s;
		try {
			while( (s=entree.readLine()) != null) {
				tmp += s+"\n";
				if (s.equalsIgnoreCase("FIN")){
					StringReader sr = new StringReader(tmp);
					LineNumberReader l = new LineNumberReader(sr);
					tmp ="";
					try {
						Protocol.parser(l);
					}
					catch(IOException e){
						//TODO a gerer serveur deconnecte
						System.err.println("serveur deconnecte");
						Joueur.connexion.close();
						e.printStackTrace();
					}
					catch(ProtocolException e){
						Joueur.connexion.close();
						e.printStackTrace();
					}
				}
			}
			//TODO a gerer serveur deconnecte
			System.err.println("serveur deconnecte");
			Joueur.connexion.close();
		}
		catch (IOException e) {
			e.printStackTrace();
			System.err.println(e);
		}
	}
}
